/**
 * @file STL_Log.hpp
 * @author Derek Liu (yjkhtddx@sina.com)
 * @brief 日志控制器
 * @version 0.0.1
 * @date 2020-07-16
 * 
 * @coryright Copyright Sci-Tech Laboratories (c) 2020
 * 
 */

#pragma once
#include <string>
#include <stdio.h>

namespace stl
{
    
    typedef enum LogLevel_t
    {
        kLogLevel_All,
        kLogLevel_Trace,
        kLogLevel_Debug,
        kLogLevel_Info,
        kLogLevel_Warn,
        kLogLevel_Error,
        kLogLevel_Fatal,
        kLogLevel_Off
    } LogLevel;

    void log(const char *format, ...);

    void trace(const char *format, ...);

    void debug(const char *format, ...);

    void info(const char *format, ...);

    void warn(const char *format, ...);

    void error(const char *format, ...);

    void fatal(const char *format, ...);

    void setLogLevel(LogLevel level);

    // void setLogPath(const std::string &path, const std::string &name);

} // namespace stl